package api

import (
	"lutai/src/bll"
	"lutai/src/logger"
	"lutai/src/model"
	"net/http"
	"strconv"

	"github.com/teambition/gear"
)

// Packet API接口
type Packet struct {
	models    *model.All
	packetBll *bll.Packet
}

// Init 初始化Packet
func (p *Packet) Init(b *bll.All) *Packet {
	p.models = b.Models
	p.packetBll = b.Packet
	return p
}

// QueryPage /packet
func (p *Packet) QueryPage(ctx *gear.Context) (err error) {

	// page := ctx.Get("Page")
	// pageSize := ctx.Get("PageSize")
	// pkgType := ctx.Get("PkgType")

	// page := ctx.Query("Page")
	// pageSize := ctx.Query("PageSize")
	// pkgType := ctx.Query("PkgType")

	page, err := strconv.Atoi(ctx.Query("Page"))
	if err != nil {
		return gear.ErrBadRequest.From(err)
	}
	pageSize, err := strconv.Atoi(ctx.Query("PageSize"))
	if err != nil {
		return gear.ErrBadRequest.From(err)
	}

	// filter := map[string]interface{}{
	// 	"pkg_type": pkgType,
	// }
	datas, err := p.packetBll.QueryPage(page, pageSize)
	if err != nil {
		logger.Errorf("QueryPage Error:%s", err.Error())
		return gear.ErrInternalServerError.WithMsg("没有数据")
	}

	return ctx.JSON(http.StatusOK, datas)
}

// Get /packet/:id
func (p *Packet) QueryData(ctx *gear.Context) (err error) {
	id := ctx.Param("id")
	datas, err := p.packetBll.QueryData(id)
	if err != nil {
		logger.Errorf("Get Error:%s", err.Error())
		return gear.ErrInternalServerError.WithMsg("没有找到数据")
	}

	return ctx.JSON(http.StatusOK, datas)
}
